// AI模块 - 处理与AI相关的交互状态
export default {
  namespaced: true,
  state: {
    shouldAutoSendBankId: false, // 是否需要自动发送选择的题库ID
    selectedBankId: null // 存储已选择的题库ID
  },
  mutations: {
    // 设置是否应该自动发送题库ID
    SET_AUTO_SEND_BANK_ID(state, value) {
      state.shouldAutoSendBankId = value;
    },
    // 设置已选择的题库ID
    SET_SELECTED_BANK_ID(state, id) {
      state.selectedBankId = id;
    }
  },
  actions: {
    // 清除选择状态
    clearSelection({ commit }) {
      commit('SET_AUTO_SEND_BANK_ID', false);
      commit('SET_SELECTED_BANK_ID', null);
    },
    
    // 模拟重新生成题目
    async regenerateQuestion(_, params) {
      // 模拟API延迟
      await new Promise(resolve => setTimeout(resolve, 1000));
      
      // 根据题目类型生成不同的模拟数据
      let newQuestion;
      
      switch(params.type) {
        case 'single':
        case 0:
          newQuestion = {
            content: '这是一道重新生成的单选题，下列选项中正确的是？',
            options: 'A.这是新的选项A\nB.这是新的选项B\nC.这是新的选项C\nD.这是新的选项D',
            correctAnswer: 'A',
            parse: '解析：选项A是正确答案，因为这是一道演示题目。'
          };
          break;
          
        case 'multiple':
        case 1:
          newQuestion = {
            content: '这是一道重新生成的多选题，下列选项中正确的有？',
            options: 'A.这是新的选项A\nB.这是新的选项B\nC.这是新的选项C\nD.这是新的选项D',
            correctAnswer: 'A,B',
            parse: '解析：选项A和B是正确答案，因为这是一道演示题目。'
          };
          break;
          
        case 'fillblank':
        case 2:
          newQuestion = {
            content: '这是一道重新生成的填空题：___是Vue.js的核心特性。',
            correctAnswer: '响应式数据',
            parse: '解析：Vue.js的核心特性是响应式数据，它能够自动追踪依赖的变化。'
          };
          break;
          
        case 'truefalse':
        case 3:
          newQuestion = {
            content: '这是一道重新生成的判断题：Vue.js是一个渐进式JavaScript框架。',
            options: 'A.正确\nB.错误',
            correctAnswer: 'A',
            parse: '解析：这句话是正确的，Vue.js的确是一个渐进式JavaScript框架。'
          };
          break;
          
        case 'shortanswer':
        case 4:
          newQuestion = {
            content: '这是一道重新生成的简答题：请简述Vue.js的生命周期钩子函数有哪些？',
            correctAnswer: 'beforeCreate、created、beforeMount、mounted、beforeUpdate、updated、beforeDestroy、destroyed',
            parse: '解析：Vue.js的生命周期钩子函数按照执行顺序包括：beforeCreate、created、beforeMount、mounted、beforeUpdate、updated、beforeDestroy、destroyed。'
          };
          break;
          
        default:
          newQuestion = {
            content: '这是一道重新生成的默认题目。',
            options: 'A.选项A\nB.选项B',
            correctAnswer: 'A',
            parse: '这是默认解析。'
          };
      }
      
      // 返回模拟数据
      return {
        code: 200,
        data: newQuestion,
        message: '重新生成成功'
      };
    }
  }
} 